<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>single_nubot_gazebo_ws: Gazebo_common</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">single_nubot_gazebo_ws
   </div>
   <div id="projectbrief">Gazebo Model Plugin for soccer robot simulation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Gazebo_common</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnubot_1_1PID.html">nubot::PID</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> controller class. Generic proportiolnal-integral-derivative controller class that keeps track of PID-error states and control inputs given the state of a system and a user specified target state.  <a href="classnubot_1_1PID.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae71f7fb98fd3cd275d83dcc6ba37678e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gae71f7fb98fd3cd275d83dcc6ba37678e">nubot::PID::PID</a> (double _p=0.0, double _i=0.0, double _d=0.0, double _imax=0.0, double _imin=0.0, double _cmdMax=0.0, double _cmdMin=0.0)</td></tr>
<tr class="memdesc:gae71f7fb98fd3cd275d83dcc6ba37678e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, zeros out Pid values when created and initialize Pid-gains and integral term limits:[iMax:iMin]-[I1:I2].  <a href="#gae71f7fb98fd3cd275d83dcc6ba37678e">More...</a><br/></td></tr>
<tr class="separator:gae71f7fb98fd3cd275d83dcc6ba37678e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7d389fc5b88d881bc25f5dafd360441"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gab7d389fc5b88d881bc25f5dafd360441">nubot::PID::~PID</a> ()</td></tr>
<tr class="memdesc:gab7d389fc5b88d881bc25f5dafd360441"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#gab7d389fc5b88d881bc25f5dafd360441">More...</a><br/></td></tr>
<tr class="separator:gab7d389fc5b88d881bc25f5dafd360441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga382ce53f7a1ad7d86cbd86a25a100ec7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga382ce53f7a1ad7d86cbd86a25a100ec7">nubot::PID::Init</a> (double _p=0.0, double _i=0.0, double _d=0.0, double _imax=0.0, double _imin=0.0, double _cmdMax=0.0, double _cmdMin=0.0)</td></tr>
<tr class="memdesc:ga382ce53f7a1ad7d86cbd86a25a100ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize PID-gains and integral term limits:[iMax:iMin]-[I1:I2].  <a href="#ga382ce53f7a1ad7d86cbd86a25a100ec7">More...</a><br/></td></tr>
<tr class="separator:ga382ce53f7a1ad7d86cbd86a25a100ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2e298baa50a7dee51d56ffe08c250a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gae2e298baa50a7dee51d56ffe08c250a0">nubot::PID::SetPGain</a> (double _p)</td></tr>
<tr class="memdesc:gae2e298baa50a7dee51d56ffe08c250a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the proportional Gain.  <a href="#gae2e298baa50a7dee51d56ffe08c250a0">More...</a><br/></td></tr>
<tr class="separator:gae2e298baa50a7dee51d56ffe08c250a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3787d609a4559005dcfc0d66565748aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga3787d609a4559005dcfc0d66565748aa">nubot::PID::SetIGain</a> (double _i)</td></tr>
<tr class="memdesc:ga3787d609a4559005dcfc0d66565748aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integral Gain.  <a href="#ga3787d609a4559005dcfc0d66565748aa">More...</a><br/></td></tr>
<tr class="separator:ga3787d609a4559005dcfc0d66565748aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93525f67c0152418f360074e8d6d970d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga93525f67c0152418f360074e8d6d970d">nubot::PID::SetDGain</a> (double _d)</td></tr>
<tr class="memdesc:ga93525f67c0152418f360074e8d6d970d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the derivtive Gain.  <a href="#ga93525f67c0152418f360074e8d6d970d">More...</a><br/></td></tr>
<tr class="separator:ga93525f67c0152418f360074e8d6d970d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a605b62cd1355c137ac6e87911fc83f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga7a605b62cd1355c137ac6e87911fc83f">nubot::PID::SetIMax</a> (double _i)</td></tr>
<tr class="memdesc:ga7a605b62cd1355c137ac6e87911fc83f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integral upper limit.  <a href="#ga7a605b62cd1355c137ac6e87911fc83f">More...</a><br/></td></tr>
<tr class="separator:ga7a605b62cd1355c137ac6e87911fc83f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdfd118371fe19fcf63c56dee66892f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gabdfd118371fe19fcf63c56dee66892f2">nubot::PID::SetIMin</a> (double _i)</td></tr>
<tr class="memdesc:gabdfd118371fe19fcf63c56dee66892f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integral lower limit.  <a href="#gabdfd118371fe19fcf63c56dee66892f2">More...</a><br/></td></tr>
<tr class="separator:gabdfd118371fe19fcf63c56dee66892f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga756b27c805adea693e9af92c767aa981"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga756b27c805adea693e9af92c767aa981">nubot::PID::SetCmdMax</a> (double _c)</td></tr>
<tr class="memdesc:ga756b27c805adea693e9af92c767aa981"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum value for the command.  <a href="#ga756b27c805adea693e9af92c767aa981">More...</a><br/></td></tr>
<tr class="separator:ga756b27c805adea693e9af92c767aa981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2124f2b2e8d7b9b8aa1a933ac412a5d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga2124f2b2e8d7b9b8aa1a933ac412a5d1">nubot::PID::SetCmdMin</a> (double _c)</td></tr>
<tr class="memdesc:ga2124f2b2e8d7b9b8aa1a933ac412a5d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum value for the command.  <a href="#ga2124f2b2e8d7b9b8aa1a933ac412a5d1">More...</a><br/></td></tr>
<tr class="separator:ga2124f2b2e8d7b9b8aa1a933ac412a5d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c0443f163e53483369989c4f185b84e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga1c0443f163e53483369989c4f185b84e">nubot::PID::GetPGain</a> () const </td></tr>
<tr class="memdesc:ga1c0443f163e53483369989c4f185b84e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the proportional Gain.  <a href="#ga1c0443f163e53483369989c4f185b84e">More...</a><br/></td></tr>
<tr class="separator:ga1c0443f163e53483369989c4f185b84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9aa6fdeab746f430822c02d719a8ba7a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga9aa6fdeab746f430822c02d719a8ba7a">nubot::PID::GetIGain</a> () const </td></tr>
<tr class="memdesc:ga9aa6fdeab746f430822c02d719a8ba7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integral Gain.  <a href="#ga9aa6fdeab746f430822c02d719a8ba7a">More...</a><br/></td></tr>
<tr class="separator:ga9aa6fdeab746f430822c02d719a8ba7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee309a8f184f0a2de417d24513f7e48a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gaee309a8f184f0a2de417d24513f7e48a">nubot::PID::GetDGain</a> () const </td></tr>
<tr class="memdesc:gaee309a8f184f0a2de417d24513f7e48a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the derivative Gain.  <a href="#gaee309a8f184f0a2de417d24513f7e48a">More...</a><br/></td></tr>
<tr class="separator:gaee309a8f184f0a2de417d24513f7e48a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49f73670f78e53265eae69338c084062"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga49f73670f78e53265eae69338c084062">nubot::PID::GetIMax</a> () const </td></tr>
<tr class="memdesc:ga49f73670f78e53265eae69338c084062"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integral upper limit.  <a href="#ga49f73670f78e53265eae69338c084062">More...</a><br/></td></tr>
<tr class="separator:ga49f73670f78e53265eae69338c084062"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0330647e22283f20d217b0e2d6cd420"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gad0330647e22283f20d217b0e2d6cd420">nubot::PID::GetIMin</a> () const </td></tr>
<tr class="memdesc:gad0330647e22283f20d217b0e2d6cd420"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integral lower limit.  <a href="#gad0330647e22283f20d217b0e2d6cd420">More...</a><br/></td></tr>
<tr class="separator:gad0330647e22283f20d217b0e2d6cd420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0738df8f919a587a843f23387e7f67f4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga0738df8f919a587a843f23387e7f67f4">nubot::PID::GetCmdMax</a> () const </td></tr>
<tr class="memdesc:ga0738df8f919a587a843f23387e7f67f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum value for the command.  <a href="#ga0738df8f919a587a843f23387e7f67f4">More...</a><br/></td></tr>
<tr class="separator:ga0738df8f919a587a843f23387e7f67f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64a6e969502546bc315ff69ef157269f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga64a6e969502546bc315ff69ef157269f">nubot::PID::GetCmdMin</a> () const </td></tr>
<tr class="memdesc:ga64a6e969502546bc315ff69ef157269f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum value for the command.  <a href="#ga64a6e969502546bc315ff69ef157269f">More...</a><br/></td></tr>
<tr class="separator:ga64a6e969502546bc315ff69ef157269f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1e86d60a148f38574c130538e0ea9d1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gaa1e86d60a148f38574c130538e0ea9d1">nubot::PID::Update</a> (double _error, double dt)</td></tr>
<tr class="memdesc:gaa1e86d60a148f38574c130538e0ea9d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the Pid loop with nonuniform time step size.  <a href="#gaa1e86d60a148f38574c130538e0ea9d1">More...</a><br/></td></tr>
<tr class="separator:gaa1e86d60a148f38574c130538e0ea9d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2a48aa0f59da310078de11a776968d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gac2a48aa0f59da310078de11a776968d7">nubot::PID::SetCmd</a> (double _cmd)</td></tr>
<tr class="memdesc:gac2a48aa0f59da310078de11a776968d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set current target command for this <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> controller.  <a href="#gac2a48aa0f59da310078de11a776968d7">More...</a><br/></td></tr>
<tr class="separator:gac2a48aa0f59da310078de11a776968d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafcc5fde219a034baee2be82906c17996"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gafcc5fde219a034baee2be82906c17996">nubot::PID::GetCmd</a> ()</td></tr>
<tr class="memdesc:gafcc5fde219a034baee2be82906c17996"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return current command for this <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> controller.  <a href="#gafcc5fde219a034baee2be82906c17996">More...</a><br/></td></tr>
<tr class="separator:gafcc5fde219a034baee2be82906c17996"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23f7bafbad7472d8d8dce24236bf5baa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga23f7bafbad7472d8d8dce24236bf5baa">nubot::PID::GetErrors</a> (double &amp;_pe, double &amp;_ie, double &amp;_de)</td></tr>
<tr class="memdesc:ga23f7bafbad7472d8d8dce24236bf5baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> error terms for the controller.  <a href="#ga23f7bafbad7472d8d8dce24236bf5baa">More...</a><br/></td></tr>
<tr class="separator:ga23f7bafbad7472d8d8dce24236bf5baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga012fe343ac6256b82f97f6e0ce2710f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga012fe343ac6256b82f97f6e0ce2710f7">nubot::PID::GetTerms</a> (double &amp;_pt, double &amp;_it, double &amp;_dt)</td></tr>
<tr class="memdesc:ga012fe343ac6256b82f97f6e0ce2710f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> terms for the controller.  <a href="#ga012fe343ac6256b82f97f6e0ce2710f7">More...</a><br/></td></tr>
<tr class="separator:ga012fe343ac6256b82f97f6e0ce2710f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd67e35a4895870bb49e62479232cf2f"><td class="memItemLeft" align="right" valign="top">PID &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gadd67e35a4895870bb49e62479232cf2f">nubot::PID::operator=</a> (const PID &amp;_p)</td></tr>
<tr class="memdesc:gadd67e35a4895870bb49e62479232cf2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator.  <a href="#gadd67e35a4895870bb49e62479232cf2f">More...</a><br/></td></tr>
<tr class="separator:gadd67e35a4895870bb49e62479232cf2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f949fd4445477ee9bf1af2bfa3e1a84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga9f949fd4445477ee9bf1af2bfa3e1a84">nubot::PID::Reset</a> ()</td></tr>
<tr class="memdesc:ga9f949fd4445477ee9bf1af2bfa3e1a84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the errors and command.  <a href="#ga9f949fd4445477ee9bf1af2bfa3e1a84">More...</a><br/></td></tr>
<tr class="separator:ga9f949fd4445477ee9bf1af2bfa3e1a84"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gab22052153953c1a8b5eee63ab415fa2a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gab22052153953c1a8b5eee63ab415fa2a">nubot::PID::pErrLast</a></td></tr>
<tr class="memdesc:gab22052153953c1a8b5eee63ab415fa2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error at a previous step.  <a href="#gab22052153953c1a8b5eee63ab415fa2a">More...</a><br/></td></tr>
<tr class="separator:gab22052153953c1a8b5eee63ab415fa2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b4084ff47368c23428b95c2fa6d78ee"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga3b4084ff47368c23428b95c2fa6d78ee">nubot::PID::pErr</a></td></tr>
<tr class="memdesc:ga3b4084ff47368c23428b95c2fa6d78ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current error.  <a href="#ga3b4084ff47368c23428b95c2fa6d78ee">More...</a><br/></td></tr>
<tr class="separator:ga3b4084ff47368c23428b95c2fa6d78ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabed7f1c0d6b47c154c5b8733d5c043ef"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gabed7f1c0d6b47c154c5b8733d5c043ef">nubot::PID::iErr</a></td></tr>
<tr class="memdesc:gabed7f1c0d6b47c154c5b8733d5c043ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral error.  <a href="#gabed7f1c0d6b47c154c5b8733d5c043ef">More...</a><br/></td></tr>
<tr class="separator:gabed7f1c0d6b47c154c5b8733d5c043ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8ebb6b2cec73c281d83ac6882739320"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gaa8ebb6b2cec73c281d83ac6882739320">nubot::PID::dErr</a></td></tr>
<tr class="memdesc:gaa8ebb6b2cec73c281d83ac6882739320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derivative error.  <a href="#gaa8ebb6b2cec73c281d83ac6882739320">More...</a><br/></td></tr>
<tr class="separator:gaa8ebb6b2cec73c281d83ac6882739320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga515d0b570daa43350349e1b776860a58"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga515d0b570daa43350349e1b776860a58">nubot::PID::pGain</a></td></tr>
<tr class="memdesc:ga515d0b570daa43350349e1b776860a58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gain for proportional control.  <a href="#ga515d0b570daa43350349e1b776860a58">More...</a><br/></td></tr>
<tr class="separator:ga515d0b570daa43350349e1b776860a58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7b246ff55dc55bf825432fa362af235"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gac7b246ff55dc55bf825432fa362af235">nubot::PID::iGain</a></td></tr>
<tr class="memdesc:gac7b246ff55dc55bf825432fa362af235"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gain for integral control.  <a href="#gac7b246ff55dc55bf825432fa362af235">More...</a><br/></td></tr>
<tr class="separator:gac7b246ff55dc55bf825432fa362af235"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e2f4ef996f5fd9628686b5111e3d0d3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga4e2f4ef996f5fd9628686b5111e3d0d3">nubot::PID::dGain</a></td></tr>
<tr class="memdesc:ga4e2f4ef996f5fd9628686b5111e3d0d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gain for derivative control.  <a href="#ga4e2f4ef996f5fd9628686b5111e3d0d3">More...</a><br/></td></tr>
<tr class="separator:ga4e2f4ef996f5fd9628686b5111e3d0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23926b1473b7ad4cbbd9fb565b94712e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga23926b1473b7ad4cbbd9fb565b94712e">nubot::PID::iMax</a></td></tr>
<tr class="memdesc:ga23926b1473b7ad4cbbd9fb565b94712e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum clamping value for integral term.  <a href="#ga23926b1473b7ad4cbbd9fb565b94712e">More...</a><br/></td></tr>
<tr class="separator:ga23926b1473b7ad4cbbd9fb565b94712e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabd36c7c162217550544931b749e4a7e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gaabd36c7c162217550544931b749e4a7e">nubot::PID::iMin</a></td></tr>
<tr class="memdesc:gaabd36c7c162217550544931b749e4a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minim clamping value for integral term.  <a href="#gaabd36c7c162217550544931b749e4a7e">More...</a><br/></td></tr>
<tr class="separator:gaabd36c7c162217550544931b749e4a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga756c5fabaf2421e05302b93e9ef248a7"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga756c5fabaf2421e05302b93e9ef248a7">nubot::PID::cmd</a></td></tr>
<tr class="memdesc:ga756c5fabaf2421e05302b93e9ef248a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command value.  <a href="#ga756c5fabaf2421e05302b93e9ef248a7">More...</a><br/></td></tr>
<tr class="separator:ga756c5fabaf2421e05302b93e9ef248a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a4e5aac90ab72833c48b1f7f06313a6"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga2a4e5aac90ab72833c48b1f7f06313a6">nubot::PID::cmdMax</a></td></tr>
<tr class="memdesc:ga2a4e5aac90ab72833c48b1f7f06313a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max command clamping value.  <a href="#ga2a4e5aac90ab72833c48b1f7f06313a6">More...</a><br/></td></tr>
<tr class="separator:ga2a4e5aac90ab72833c48b1f7f06313a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga887cadc64650fbd326b05c081141603f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga887cadc64650fbd326b05c081141603f">nubot::PID::cmdMin</a></td></tr>
<tr class="memdesc:ga887cadc64650fbd326b05c081141603f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Min command clamping value.  <a href="#ga887cadc64650fbd326b05c081141603f">More...</a><br/></td></tr>
<tr class="separator:ga887cadc64650fbd326b05c081141603f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac209a483d85ab0a198d36709dd0d089d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gac209a483d85ab0a198d36709dd0d089d">nubot::PID::pTerm</a></td></tr>
<tr class="memdesc:gac209a483d85ab0a198d36709dd0d089d"><td class="mdescLeft">&#160;</td><td class="mdescRight">pTerm  <a href="#gac209a483d85ab0a198d36709dd0d089d">More...</a><br/></td></tr>
<tr class="separator:gac209a483d85ab0a198d36709dd0d089d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b1af456567f8c17b81d4be70dbb1bb1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#ga5b1af456567f8c17b81d4be70dbb1bb1">nubot::PID::dTerm</a></td></tr>
<tr class="memdesc:ga5b1af456567f8c17b81d4be70dbb1bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">dTerm  <a href="#ga5b1af456567f8c17b81d4be70dbb1bb1">More...</a><br/></td></tr>
<tr class="separator:ga5b1af456567f8c17b81d4be70dbb1bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad05e98c72f5396f4bd32e729ede59ad1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gazebo__common.html#gad05e98c72f5396f4bd32e729ede59ad1">nubot::PID::iTerm</a></td></tr>
<tr class="memdesc:gad05e98c72f5396f4bd32e729ede59ad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">iTerm  <a href="#gad05e98c72f5396f4bd32e729ede59ad1">More...</a><br/></td></tr>
<tr class="separator:gad05e98c72f5396f4bd32e729ede59ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gafcc5fde219a034baee2be82906c17996"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetCmd </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return current command for this <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> controller. </p>
<dl class="section return"><dt>Returns</dt><dd>the command value </dd></dl>

</div>
</div>
<a class="anchor" id="ga0738df8f919a587a843f23387e7f67f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetCmdMax </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the maximum value for the command. </p>
<dl class="section return"><dt>Returns</dt><dd>The maximum value </dd></dl>

</div>
</div>
<a class="anchor" id="ga64a6e969502546bc315ff69ef157269f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetCmdMin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the maximum value for the command. </p>
<dl class="section return"><dt>Returns</dt><dd>The maximum value </dd></dl>

</div>
</div>
<a class="anchor" id="gaee309a8f184f0a2de417d24513f7e48a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetDGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the derivative Gain. </p>
<dl class="section return"><dt>Returns</dt><dd>The derivative gain value </dd></dl>

</div>
</div>
<a class="anchor" id="ga23f7bafbad7472d8d8dce24236bf5baa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::GetErrors </td>
          <td>(</td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_pe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_ie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_de</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> error terms for the controller. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_pe</td><td>The proportional error. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_ie</td><td>The integral error. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_de</td><td>The derivative error. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9aa6fdeab746f430822c02d719a8ba7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetIGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integral Gain. </p>
<dl class="section return"><dt>Returns</dt><dd>The integral gain value </dd></dl>

</div>
</div>
<a class="anchor" id="ga49f73670f78e53265eae69338c084062"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetIMax </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integral upper limit. </p>
<dl class="section return"><dt>Returns</dt><dd>The integral upper limit value </dd></dl>

</div>
</div>
<a class="anchor" id="gad0330647e22283f20d217b0e2d6cd420"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetIMin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integral lower limit. </p>
<dl class="section return"><dt>Returns</dt><dd>The integral lower limit value </dd></dl>

</div>
</div>
<a class="anchor" id="ga1c0443f163e53483369989c4f185b84e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::GetPGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the proportional Gain. </p>
<dl class="section return"><dt>Returns</dt><dd>The proportional gain value </dd></dl>

</div>
</div>
<a class="anchor" id="ga012fe343ac6256b82f97f6e0ce2710f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::GetTerms </td>
          <td>(</td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_it</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_dt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> terms for the controller. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_pt</td><td>The proportional error term. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_it</td><td>The integral error term. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_dt</td><td>The derivative error term. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga382ce53f7a1ad7d86cbd86a25a100ec7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::Init </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_p</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_i</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_d</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_imax</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_imin</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_cmdMax</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_cmdMin</em> = <code>0.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize PID-gains and integral term limits:[iMax:iMin]-[I1:I2]. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>The proportional gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_i</td><td>The integral gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_d</td><td>The derivative gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_imax</td><td>The integral upper limit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_imin</td><td>The integral lower limit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_cmdMax</td><td>Output max value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_cmdMin</td><td>Output min value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadd67e35a4895870bb49e62479232cf2f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PID&amp; nubot::PID::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnubot_1_1PID.html">PID</a> &amp;&#160;</td>
          <td class="paramname"><em>_p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assignment operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>a reference to a <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> to assign values from </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>reference to this instance </dd></dl>

</div>
</div>
<a class="anchor" id="gae71f7fb98fd3cd275d83dcc6ba37678e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PID::PID </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_p</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_i</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_d</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_imax</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_imin</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_cmdMax</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_cmdMin</em> = <code>0.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor, zeros out Pid values when created and initialize Pid-gains and integral term limits:[iMax:iMin]-[I1:I2]. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>The proportional gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_i</td><td>The integral gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_d</td><td>The derivative gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_imax</td><td>The integral upper limit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_imin</td><td>The integral lower limit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_cmdMax</td><td>Output max value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_cmdMin</td><td>Output min value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9f949fd4445477ee9bf1af2bfa3e1a84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::Reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reset the errors and command. </p>

</div>
</div>
<a class="anchor" id="gac2a48aa0f59da310078de11a776968d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetCmd </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_cmd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set current target command for this <a class="el" href="classnubot_1_1PID.html" title="Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...">PID</a> controller. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_cmd</td><td>New command </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga756b27c805adea693e9af92c767aa981"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetCmdMax </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the maximum value for the command. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_c</td><td>The maximum value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2124f2b2e8d7b9b8aa1a933ac412a5d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetCmdMin </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the maximum value for the command. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_c</td><td>The maximum value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga93525f67c0152418f360074e8d6d970d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetDGain </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_d</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the derivtive Gain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>dertivative gain value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3787d609a4559005dcfc0d66565748aa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetIGain </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integral Gain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>integral gain value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7a605b62cd1355c137ac6e87911fc83f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetIMax </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integral upper limit. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>integral upper limit value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gabdfd118371fe19fcf63c56dee66892f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetIMin </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integral lower limit. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>integral lower limit value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae2e298baa50a7dee51d56ffe08c250a0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PID::SetPGain </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the proportional Gain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_p</td><td>proportional gain value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa1e86d60a148f38574c130538e0ea9d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PID::Update </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>_error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update the Pid loop with nonuniform time step size. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_in]</td><td>_error Error since last call (p_target - p_state). </td></tr>
    <tr><td class="paramname">_in]</td><td>_dt Change in time since last update call. Normally, this is called at every time step, The return value is an updated command to be passed to the object being controlled. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the command value </dd></dl>

</div>
</div>
<a class="anchor" id="gab7d389fc5b88d881bc25f5dafd360441"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PID::~PID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ga756c5fabaf2421e05302b93e9ef248a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::cmd</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Command value. </p>

</div>
</div>
<a class="anchor" id="ga2a4e5aac90ab72833c48b1f7f06313a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::cmdMax</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Max command clamping value. </p>

</div>
</div>
<a class="anchor" id="ga887cadc64650fbd326b05c081141603f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::cmdMin</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Min command clamping value. </p>

</div>
</div>
<a class="anchor" id="gaa8ebb6b2cec73c281d83ac6882739320"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::dErr</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Derivative error. </p>

</div>
</div>
<a class="anchor" id="ga4e2f4ef996f5fd9628686b5111e3d0d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::dGain</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gain for derivative control. </p>

</div>
</div>
<a class="anchor" id="ga5b1af456567f8c17b81d4be70dbb1bb1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::dTerm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>dTerm </p>

</div>
</div>
<a class="anchor" id="gabed7f1c0d6b47c154c5b8733d5c043ef"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::iErr</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Integral error. </p>

</div>
</div>
<a class="anchor" id="gac7b246ff55dc55bf825432fa362af235"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::iGain</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gain for integral control. </p>

</div>
</div>
<a class="anchor" id="ga23926b1473b7ad4cbbd9fb565b94712e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::iMax</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Maximum clamping value for integral term. </p>

</div>
</div>
<a class="anchor" id="gaabd36c7c162217550544931b749e4a7e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::iMin</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Minim clamping value for integral term. </p>

</div>
</div>
<a class="anchor" id="gad05e98c72f5396f4bd32e729ede59ad1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::iTerm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>iTerm </p>

</div>
</div>
<a class="anchor" id="ga3b4084ff47368c23428b95c2fa6d78ee"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::pErr</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Current error. </p>

</div>
</div>
<a class="anchor" id="gab22052153953c1a8b5eee63ab415fa2a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::pErrLast</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Error at a previous step. </p>

</div>
</div>
<a class="anchor" id="ga515d0b570daa43350349e1b776860a58"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::pGain</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gain for proportional control. </p>

</div>
</div>
<a class="anchor" id="gac209a483d85ab0a198d36709dd0d089d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nubot::PID::pTerm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pTerm </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 11 2015 11:01:09 for single_nubot_gazebo_ws by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
